import UIKit

var str = "Hello, playground"

//定义异常
enum MyErr : Error{
    case DesTroyError
    case NormalError
    case SimpleError
}

//定义一个抛出异常的方法
func test(param:Bool)throws->Void{
    if param {
        throw MyErr.NormalError
    }
}

//使用try?处理异常
var err: Void? = try? test(param: true)

if err == nil {
    print("发生异常")
}else{
    print("未发生异常")
}

//结合if-let语句可写出十分飘逸的异常处理代码
if let _ = try? test(param: true){
    print("执行成功")
}else{
    print("发生异常")
}

//使用do-catch进行异常的捕获和处理
do{
    
    try test(param: true)
    
} catch MyErr.NormalError{
    print("NormalError")
} catch MyErr.DesTroyError{
    print("DesTroyError")
} catch MyErr.SimpleError{
    print("SimpleError")
}
